package negocio;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import negocio.Medico;
import negocio.Paciente;


@Entity
@Table(name= "turnos")
public class Turno {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private long idTurno;
	
	@OneToOne(cascade = CascadeType.ALL)
	@Fetch(FetchMode.JOIN)
	private Paciente paciente;
	
	@Column(name ="FechaYhora", nullable=false)
	private Calendar fechaYhora ;
	
	@OneToOne(cascade = CascadeType.ALL)
	private Medico medico;
	
	@Column(name ="Estado", nullable=false)
	private String estado;

	@Column(name ="EsActual", nullable=false)
	private boolean esActual;
	
	public Turno(){
		this.esActual = true;
		fechaYhora = Calendar.getInstance();
	}
	
	public String obtenerHorario(){
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
		String horario = sdf.format(fechaYhora.getTime());
		return horario;
	}
	
	//getters y setters
	public long getIdTurno() {
		return idTurno;
	}

	public void setIdTurno(long idTurno) {
		this.idTurno = idTurno;
	}

	public Paciente getPaciente() {
		return paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	public Calendar getFechaYhora() {
		return fechaYhora;
	}

	public void setFechaYhora(Calendar fechaYhora) {
		this.fechaYhora = fechaYhora;
	}

	public Medico getMedico() {
		return medico;
	}

	public void setMedico(Medico medico) {
		this.medico = medico;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public boolean isEsActual() {
		return esActual;
	}

	public void setEsActual(boolean esActual) {
		this.esActual = esActual;
	}	
}
